The present application relates generally to an improved data processing apparatus and method and more specifically to mechanisms for efficiently handling interrupt actions in inter-thread communications.
In systems programming, an interrupt is a signal to a processor or, more specifically, a thread within the processor indicating an event that needs immediate attention. Such interrupts alert a thread to a high-priority condition requiring the interruption of the current code the thread is executing. The thread responds by suspending its current activities, saving its state, and executing a small program called an interrupt handler or interrupt service routine (ISR) to deal with the event. This interruption is temporary, and after the interrupt handler finishes, the thread resumes execution of the previous workload.
However, there are other interrupts utilized within a processor. That is, in multi-threaded processors, the multiple threads within the processor communicate with each other through the use of thread interrupts. While these thread interrupts do not need to be handled immediately, it is important to maintain the integrity of the data structures that are used to implement the thread interrupts so that additional performance issues are not introduced.